package com.agri.dto;

import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

/**
 * 农产品分类数据传输对象
 * 用于前端与后端之间的分类数据交互
 *
 * @author Agri-Fin-Sale Team
 * @since 2025-10-31
 */
@Data
public class CropCategoryDTO {

    /**
     * 分类ID，更新时必填
     */
    private Long id;

    /**
     * 分类编码，唯一标识
     */
    @NotBlank(message = "分类编码不能为空")
    @Size(max = 50, message = "分类编码长度不能超过50个字符")
    private String categoryCode;

    /**
     * 分类名称
     */
    @NotBlank(message = "分类名称不能为空")
    @Size(max = 100, message = "分类名称长度不能超过100个字符")
    private String categoryName;

    /**
     * 分类描述
     */
    @Size(max = 500, message = "分类描述长度不能超过500个字符")
    private String description;

    /**
     * 父级分类ID，0表示根分类
     */
    private Long parentId;

    /**
     * 分类层级
     */
    private Integer level;

    /**
     * 状态：0-禁用，1-启用
     */
    private Integer status;
}
